1. Field of the Invention
The present invention relates generally to small office/home office (“SOHO”) and home networking, and more particularly, to automatic and adaptive network traffic prioritization and shaping.
2. Description of the Related Art
Conventional SOHO and home networks are typically local area networks (“LAN”) that include several computing devices interconnected either through wires or wireless links. Typically, the SOHO/home LAN includes one or more network devices that provide access for other network devices to a wide area network (“WAN”), most commonly the Internet. These network devices are sometimes called home routers or gateways. In the typical SOHO/home LAN, home routers or gateways manage communications with the WAN and serve as a central point for sharing files and resources in the LAN. These devices are generally referred to as gateways.
There are multiple features that can be included in such gateways. Some of these features include hardware firewalls, wireless network access points, network address translation (“NAT”), dynamic host configuration services (“DHCP”), content filtering, ad blocking, virtual server functions, wireless networking/security functions, and the like.
Generally, the conventional SOHO/home gateway is connected to a modem device that provides the physical link to the WAN. Modem devices are typically broadband modems, such as cable modems, digital subscriber line (“DSL”) modems, and the like. The upstream connection between the modem device and the WAN is generally of substantially less data transfer capacity than the downstream connection. Further, the upstream connection is also slower than the intra LAN communications, which tend to be symmetrical high bandwidth capable connections. For example, LANs may operate at data rates in the hundreds of Megabits per second (“Mbps”) to Gigabits per second (“Gbps”) while the WAN uplink data speed may only be between 128 and 256 Kilobits per second (“Kbps”). This poses a data delay problem for data transfers from the LAN to the WAN, primarily in the upstream connection or uplink. For some software applications this data delay problem can result in a degraded user experience, performance degradation, or malfunction.
In the conventional SOHO/home network environment, SOHO/home networks routinely carry data traffic for multiple applications concurrently, generally from different computer systems in the LAN. Some of these applications are high bandwidth asynchronous applications for which latency is not a requirement. These applications typically operate based on large data packets to optimize their throughput by including the highest amount of payload data per packet. For example, electronic mail and file transfer applications fall in this category of applications. Other applications are more sensitive to data transfer delays, requiring low latency data traffic or a higher quality of service (“QoS”). For example, in multi-user gaming applications, voice over Internet Protocol (“VoIP”) applications, other voice and video applications and other applications requiring real-time data transfers, delays can cause significant degradation in performance when operating in the typical SOHO/home network environment.
Conventional routers employ a “best-effort” approach to managing the data traffic congestion. Routers queue packets into the data buffer of the modem device on a first-in/first-out (“FIFO”) approach. Using this approach, some packets of applications that require a higher QoS end up queued behind large high bandwidth packets, which result in an undesirable and some times critical delay. For example, in the gaming context, data delays may impact the application by producing different results at the local computer than those produced at the game server or peer computer across the WAN, e.g., the user may hit a target in his local computer but by the time the data gets to the peer gaming computer the hit is a miss. Similarly, in the VoIP context, initially, short data delays may be simply an annoyance, as the delay increases, e.g., over 200 ms, users begin talking over each other, and as the delay gets worse, packets begin dropping and the sound starts breaking up.
Additionally, conventional SOHO/home gateway devices also negatively impact applications that require a large quantity of multiple simultaneous connections. In part, this negative impact is due to the operation of the transmission control protocol/Internet protocol (“TCP/IP”), the dominant protocol in SOHO/home office networks and in Internet computing generally. The TCP/IP protocol tries to optimize the use of available bandwidth by distributing the bandwidth among different connections. However, when a large number of connections are established, new connections may not be able to get through the uplink connection once the bandwidth is occupied by other pre-existing connections. For example, if a peer-to-peer (“P2P”) file sharing application is running on the LAN establishing hundreds of connections with peer computers across the WAN, a new connection required by a VoIP or gaming application may not be possible. A connection request issued by one of these applications may expire before the TCP/IP bandwidth sharing scheme allocates bandwidth for the new connection.
In the enterprise/service provider networking technology some approaches have been taken for solving this problem. For example, traffic management techniques are used to manually configure, prioritize, and shape the traffic at each interface in enterprise-networking devices. Network administrators familiar with the operation of the enterprise applications and with access to powerful network management tools can configure and prioritize traffic through the enterprise interfaces. However, this type of solution is inadequate for the general SOHO/home networking user because it requires multiple capabilities and knowledge not likely to be available to the average user.
For example, the application itself must be able to identify or “tag” the data traffic so the router can identify the type of traffic. If the application does not tag the traffic, then the user must be able to identify the traffic type for the router in some other way to allow the router to recognize the application. This type of information is not readily available to most users and some applications change this information on a per session basis, making it difficult for the SOHO/home user to provide lasting configurations.
If the router can identify the traffic type, the user must be able to instruct the router to associate that traffic type with a prescribed behavior supported by the traffic management algorithm in the router. This may involve configuring multiple complex parameters in the router. The router must provide a user interface and include traffic management algorithms to enable the user to provide these configurations. Further, even if the capability is available and the user has the sufficient knowledge to properly configure the traffic management function, currently the behaviors of these systems for any particular traffic type are determined on a per session basis and cannot change within a single session.
Therefore, there is a need for a system and method to provide an ongoing, real-time automatic prioritization of network traffic without requiring user configuration and capable of shaping the data traffic to adjust to channel conditions and changes within the same session.